package handler

import (
	"github.com/gin-gonic/gin"
	"go-devops/common"
	"go-devops/domain/dto"
	"go-devops/domain/model"
)

func ImageList(c *gin.Context) {
	nodeType := c.Query("type")
	list, err := model.QueryNodeImageList(nodeType)
	if err != nil {
		common.BizError(c, "镜像查询失败")
		return
	}
	common.OKData(c, list)
}

func AddImage(c *gin.Context) {
	var nodeImageDTO dto.NodeImageDTO
	if err := c.ShouldBindJSON(&nodeImageDTO); err != nil {
		common.BizError(c, err.Error())
		return
	}

	count, err := model.QueryNodeImageCount(nodeImageDTO.NodeType, nodeImageDTO.DockerImage)
	if err != nil {
		common.BizError(c, "添加镜像失败")
		return
	}

	if count > 0 {
		common.BizError(c, "镜像配置已存在")
		return
	}

	nodeImage := &model.NodeImage{
		NodeType:    nodeImageDTO.NodeType,
		DockerImage: nodeImageDTO.DockerImage,
		CreateTime:  common.NowStr(),
	}
	if err := model.AddNodeImage(nodeImage); err != nil {
		common.BizError(c, "添加镜像失败")
		return
	}
	common.OK(c)
}
